from manim import *


'''
The move_to() method uses absolute units (measured relative to the ORIGIN), 
while next_to() uses relative units (measured from the mobject passed as the first argument). 
align_to() uses LEFT not as measuring units but as a way to determine the border to use 
for alignment. 
The coordinates of the borders of a mobject are determined using an imaginary bounding box 
around it.
'''
class MObjectPlacement(Scene):
    def construct(self):
        circle = Circle()
        square = Square()
        triangle = Triangle()

        circle.move_to(point_or_mobject=LEFT*2)
        square.next_to(mobject_or_point=circle, direction=LEFT)
        triangle.align_to(mobject_or_point=circle, direction=LEFT)

        self.add(circle, square, triangle)
        self.wait(duration=1)